/*
 * @Author: wangjh wangjiahui0710@163.com
 * @Date: 2024-06-11 11:33:54
 * @LastEditors: wangjh wangjiahui0710@163.com
 * @LastEditTime: 2024-07-25 18:03:27
 * @FilePath: \cip-admin\src\pages\park\third-party\audit\state.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import type { EnclosureParkBarriersQueryPageUsingPost } from "@/genapi/wh-yqd";
import { enclosureParkBarriersQueryPageUsingPost } from "@/genapi/wh-yqd";
import { usePage } from "@/hooks/use-page";

export const [createState, injectState] = createInjectionState(
	() => {
		// 查询条件
		const filter = ref<EnclosureParkBarriersQueryPageUsingPost.Query>();

		const page = usePage({
			initPageSize: 15,
			fetch: async ({ pageSize, currentPage }) => {
				const { data } = await enclosureParkBarriersQueryPageUsingPost({
					data: {
						pageSize: pageSize,
						currentPage: currentPage,
						...filter.value,
					},
				});
				return {
					records: data?.records ?? [],
					total: data?.total ?? 0,
					pageSize,
				};
			},
		});

		watchDeep(filter, () => page.execute({ currentPage: 0 }));

		// 当前选中的列表项
		const selectedList = shallowRef<typeof page.records.value>([]);

		// 表格组件
		const tableRef =
			shallowRef<InstanceType<GlobalComponents["TableWidget"]>>();

		return {
			page,
			filter,
			selectedList,
			tableRef,
		};
	},
	{
		injectionKey: "pageState",
	},
);
